var Shake = function() {
	var times = 0;
	var options = {
		threshold: 2500
	}
	var last_update = 0;
	var x = 0,
		y = 0,
		z = 0,
		last_x = 0,
		last_y = 0,
		last_z = 0;
	function init(param) {
		var self = this;
		options = $.extend(options, param);
		if (window.DeviceMotionEvent) {
			window.addEventListener('devicemotion', deviceMotionHandler, false);
		} else {
			alert("您的设备不支持摇一摇功能！");
		}

	}

	function deviceMotionHandler(eventData) {
		var acceleration = eventData.accelerationIncludingGravity;
		var curTime = new Date().getTime();
		if ((curTime - last_update) >100) {
			var diffTime = curTime - last_update;
			last_update = curTime;
			x = acceleration.x;
			y = acceleration.y;
			z = acceleration.z;
			var speed = Math.abs(x + y + z - last_x - last_y - last_z) / diffTime * 10000;
			if (speed > options.threshold) {
				times++;
				options.callback(times);
			}
			last_x = x;
			last_y = y;
			last_z = z;
		}
	}
	function reset(){
		times = 0;
	}
	return {
		"init": init,
		"reset":reset
	}
}();